<template>
    <div class="chart-container">
        <!-- <div class="chart-title">
            <p class="p1">组网分布</p>
            <p class="p2">圆形面积代表符号速率,信噪比0.5s实为信噪比不明</p>
        </div> -->
        <div ref="chartRef" style="width: 100%; height: 500px"></div>
    </div>
</template>
<script lang="ts">
import { defineComponent, ref, Ref, onMounted } from 'vue';
import { useECharts } from '/@/hooks/web/useECharts';

export default defineComponent({
  props:{
    title: {
      type: String as PropType<string>,
      default: '组网分布',  // 设置默认值
    },
    title1: {
      type: String as PropType<string>,
      default: '圆形面积代表符号速率,信噪比0.5s实为信噪比不明',  // 设置默认值
    },
  },
  setup(props) {
    
    const chartRef = ref<HTMLDivElement | null>(null);
    const { setOptions, resize, echarts, getInstance } = useECharts(
      chartRef as Ref<HTMLDivElement>,
    );

    const data = [
      [
        [28604, 77, 17096869, 1990],
        [31163, 77.4, 27662440, 1990],
        [1516, 68, 1154605773, 1990],
        [13670, 74.7, 10582082, 1990],
        [28599, 75, 4986705, 1990],
        [29476, 77.1, 56943299, 1990],
        [31476, 75.4, 78958237, 1990],
        [28666, 78.1, 254830, 1990],
        [1777, 57.7, 870601776, 1990],
        [29550, 79.1, 122249285, 1990],
        [2076, 67.9, 20194354, 1990],
        [12087, 72, 42972254, 1990],
        [24021, 75.4, 3397534, 1990],
        [43296, 76.8, 4240375, 1990],
        [10088, 70.8, 38195258, 1990],
        [19349, 69.6, 147568552, 1990],
        [10670, 67.3, 53994605, 1990],
        [26424, 75.7, 57110117, 1990],
        [37062, 75.4, 252847810, 1990]
      ],
      [
        [44056, 81.8, 23968973, 'Australia', 2015],
        [43294, 81.7, 35939927, 'Canada', 2015],
        [13334, 7.9, 1376048943, 'China', 2015],
        [21291, 8.5, 11389562, 'Cuba', 2015],
        [38923, 80.8, 5503457, 'Finland', 2015],
        [37599, 81.9, 64395345, 'France', 2015],
        [44053, 81.1, 80688545, 'Germany', 2015],
        [42182, 82.8, 329425, 'Iceland', 2015],
        [5903, 66.8, 1311050527, 'India', 2015],
        [36162, 83.5, 126573481, 'Japan', 2015],
        [1390, 71.4, 25155317, 'North Korea', 2015],
        [34644, 80.7, 50293439, 'South Korea', 2015],
        [34186, 80.6, 4528526, 'New Zealand', 2015],
        [64304, 81.6, 5210967, 'Norway', 2015],
        [24787, 77.3, 38611794, 'Poland', 2015],
        [23038, 73.13, 143456918, 'Russia', 2015],
        [19360, 76.5, 78665830, 'Turkey', 2015],
        [38225, 81.4, 64715810, 'United Kingdom', 2015],
        [53354, 79.1, 321773631, 'United States', 2015]
      ],
      [
        [44056, 20, 23968973, 'Australia', 2016],
        [43294, 110, 35939927, 'Canada', 2016],
        [13334, 70.9, 1376048943, 'China', 2016],
        [21291, 78.5, 11389562, 'Cuba', 2016],
        [38923, 80.8, 5503457, 'Finland', 2016],
        [37599, 81.9, 64395345, 'France', 2016],
        [44053, 81.1, 80688545, 'Germany', 2016],
        [42182, 82.8, 329425, 'Iceland', 2016],
        [5903, 66.8, 1311050527, 'India', 2016],
      ],
      [
        [44056, 20, 23968973, 'Australia', 2016],
        [43294, 110, 35939927, 'Canada', 2016],
        [13334, 26.9, 1376048943, 'China', 2016],
        [21291, 78.5, 11389562, 'Cuba', 2016],
        [38923, 80.8, 5503457, 'Finland', 2016],
        [37599, 81.9, 64395345, 'France', 2016],
        [44053, 81.1, 80688545, 'Germany', 2016],
        [42182, 82.8, 329425, 'Iceland', 2016],
        [5903, 66.8, 1311050527, 'India', 2016],
      ],
      [
        [44326, 20, 23968973, 'Australia', 2016],
        [43, 110, 35939927, 'Canada', 2016],
        [132334, 76.9, 1376048943, 'China', 2016],
        [12291, 78.5, 11389562, 'Cuba', 2016],
        [38923, 80.8, 54323457, 'Finland', 2016],
        [3743, 81.9, 64395345, 'France', 2016],
        [42153, 81.1, 80688545, 'Germany', 2016],
        [42182, 82.8, 329425, 'Iceland', 2016],
        [5903, 66.8, 1311050527, 'India', 2016],
      ]
    ];
    function do_get_chars() {
      setOptions({
        // backgroundColor: new echarts.graphic.RadialGradient(0.3, 0.3, 0.8, [
        //   {
        //     offset: 0,
        //     color: '#f7f8fa'
        //   },
        //   {
        //     offset: 1,
        //     color: '#cdd0d5'
        //   }
        // ]),
        // title: {
        //   text: 'Life Expectancy and GDP by Country',
        //   left: '5%',
        //   top: '3%'
        // },
        graphic: [
          {
            type: 'text',
            id: 'mainTitle',
            left: 20,
            top: 20,
            style: {
              text: props.title,
              fill: '#333',
              fontSize: 20,
              fontWeight: 'bold',
              textAlign: 'center'
            }
          },
          {
            type: 'text',
            id: 'subTitle',
            left: 20,
            top: 50,
            style: {
              text: props.title1,
              fill: '#999',
              fontSize: 12,
              textAlign: 'center'
            }
          },
        ],
        legend: {
          left: 'center',
          //   right: '10%',
          top: '4%',
          data: ['FDMA', 'TDMA', 'PCMA','BEACON','UNKNOWN']
        },
        grid: {
          left: '8%',
          top: '25%'
        },
        xAxis: {
          splitLine: {
            lineStyle: {
              type: 'dashed'
            }
          }
        },
        yAxis: {
          splitLine: {
            lineStyle: {
              type: 'dashed'
            }
          },
          scale: true
        },
        series: [
          {
            name: 'FDMA',
            data: data[0],
            type: 'scatter',
            symbolSize: function (data) {
              return Math.sqrt(data[2]) / 5e2;
            },
            emphasis: {
              focus: 'series',
              label: {
                show: true,
                formatter: function (param) {
                  return param.data[1];
                },
                position: 'top'
              }
            },
            itemStyle: {
              shadowBlur: 10,
              shadowColor: 'rgba(120, 36, 50, 0.5)',
              shadowOffsetY: 5,
              color: '#E17175'
            }
          },
          {
            name: 'TDMA',
            data: data[1],
            type: 'scatter',
            symbolSize: function (data) {
              return Math.sqrt(data[2]) / 5e2;
            },
            emphasis: {
              focus: 'series',
              label: {
                show: true,
                formatter: function (param) {
                  return param.data[1];
                },
                position: 'top'
              }
            },
            itemStyle: {
              shadowBlur: 10,
              shadowColor: 'rgba(25, 100, 150, 0.5)',
              shadowOffsetY: 5,
              color: '#89D7E6'
            }
          },
          {
            name: 'PCMA',
            data: data[2],
            type: 'scatter',
            symbolSize: function (data) {
              return Math.sqrt(data[2]) / 5e2;
            },
            emphasis: {
              focus: 'series',
              label: {
                show: true,
                formatter: function (param) {
                  return param.data[1];
                },
                position: 'top'
              }
            },
            itemStyle: {
              shadowBlur: 10,
              shadowOffsetY: 5,
              color: '#51AD5F'
            }
          },
          {
            name: 'BEACON',
            data: data[3],
            type: 'scatter',
            symbolSize: function (data) {
              return Math.sqrt(data[2]) / 5e2;
            },
            emphasis: {
              focus: 'series',
              label: {
                show: true,
                formatter: function (param) {
                  return param.data[1];
                },
                position: 'top'
              }
            },
            itemStyle: {
              shadowBlur: 10,
              shadowOffsetY: 5,
              color: '#61892B'
            }
          },
          {
            name: 'UNKNOWN',
            data: data[4],
            type: 'scatter',
            symbolSize: function (data) {
              return Math.sqrt(data[2]) / 5e2;
            },
            emphasis: {
              focus: 'series',
              label: {
                show: true,
                formatter: function (param) {
                  return param.data[1];
                },
                position: 'top'
              }
            },
            itemStyle: {
              shadowBlur: 10,
              shadowOffsetY: 5,
              color: '#8E20B1'
            }
          },
        ],
        dataZoom: [
          {
            type: 'slider', // 外部slider  
            start: 10, // 初始时，显示10%到100%的数据  
            end: 100
          },
          {
            type: 'inside', // 内置的缩放区域  
            start: 10,
            end: 100
          }
        ],
        toolbox: {
            right:"5%",
            top:"20px",
            feature: {
              dataView:{},
              restore: {},
              saveAsImage: {},
            },
          },
      });

    }
    onMounted(() => {
      do_get_chars()
    })
    return {
      chartRef,
      do_get_chars
    }
  }
})

</script>
<style lang=less scoped>
.chart-container {
    position: relative;

    .chart-title {
        position: absolute;
        top: 20px;
        z-index: 2;
        left: 40px;

        p {
            margin-bottom: 0;
        }

        .p1 {
            font-size: 20px;
            font-weight: bold;
        }

        .p2 {
            color: #999;
        }
    }
}
</style>